1. Field of the Invention
This invention pertains to the field of digital signal processing and, in particular, to the matrix multiplication of a plurality of digital signals by a coefficient matrix of the type used in color signal processing.
2. Background Art
Linear image sensors are extensively used in image scanners. Applications include hybrid (film/electronic) photographic systems, facsimile and electronic copiers. These linear sensor arrays exist in a variety of resolutions ranging from 2000 to 8000 elements. Linear image scanners generally include a limited amount of real-time digital image processing, such as black correction and gain correction, which are implemented using off-the-shelf digital integrated circuits. One method for obtaining color information is by using three linear arrays, each with a different color filter (R,G,B), integrated on the surface of the sensor. These sensors are spaced apart by an integral number of lines on the same substrate. The page scan direction is perpendicular to the linear arrays, and hence the three channels of information correspond to spatially displaced photosites.
An example of a known film scanning system is shown in FIG. 1. A set of linear sensors 10r, 10g,and 10b are integrated on a substrate 11 and spatially displaced by an integral number, e.g., 8 lines, on the substrate 11. The sensors 10r, 10g and 10b are supported in the imaging plane of an optical system 12, which images respective lines (illuminated by the lamp arrangement 14) from a film image 13a upon the sensors. The film image 13 is one of many on an elongated web 13 of film, which is moved in the direction shown through an optical film gate 15. The analog output signals from the sensors 10r, 10g,10b are respectively multiplexed into one channel by a multiplexer 16. Due to the eight-line spacing of the sensors, consecutive red, green, and blue samples in the multiplexed stream of signals are actually offset by multiples of eight lines. The multiplexed signals are digitized in an A/D converter 17 and applied to a signal processor 18, where conventional black-level correction, gain correction, and the like, may be accomplished.
Color matrixing can also be used in the signal processor 18 to improve color reproduction, or to provide color space transformation. For instance, a color space transformation matrix is used to convert red, green, and blue video signals into Y (luminance) and R-Y, B-Y (chrominance) signals. A color correction matrix is used to correct the spectral sensitivities of the sensors for the chromaticities of the phosphor set of the particular display in use. Another use is with film-to-video conversion, a process in which a color correction matrix operates on the film scanning signals to correct the film colorimetry for video display.
It is desirable for reasons of space and efficiency to implement the matrix in one, or a few, integrated circuits. A conventional approach is to use an array of multipliers, say nine multipliers, to implement a 3.times.3 matrix. This uses a prohibitive amount of circuit area (on an integrated circuit). The multipliers can be replaced with ROM (read only memory ) look-up tables. This still takes a lot of area. Another approach approximates the matrix coefficients by simple shifting operations, which can be implemented digitally by "hardwired" right (or left) shift connections between registers that provide a "binary" matrix coefficient series, such as 1/32, 1/16, 1/8, 1/4, 1/2, 1, 2, etc.
An improvement to the latter approach is disclosed in Ser. No. 346,861, "A Programmable Digital Circuit for Performing a Matrix Multiplication", filed May 3, 1989 in the names of Kenneth A. Parulski, Robert H. Hibbard and Lionel J. D'Luna, and assigned to the assignee of the present invention. Both the shifts and an arithmetic function are mask programmed in a simple, area-conserving configuration that lends itself to cascading, both for increased accuracy and ease of matrix implementation. The circuit disclosed in Ser. No. 346,861 includes a cascaded array of digital "building blocks" that together implement a matrix multiplication in each channel of a color video signal processing system. A multi-row matrix is obtained by driving several cascaded chains in parallel across a plurality of signal channels. Notwithstanding the advantages, the circuit disclosed in Ser. No. 346,861 is most useful in matrix circuits where less accuracy can be tolerated. For example, it is difficult to achieve 8-bit accuracy merely with bit-shifting and a reasonable number of additive arithmetic functions. Moreover, the increased level of programming needed for greater bit accuracy would lead away from the type of mask programming used in this circuit.
A different approach to programmability is seen in U.S. Pat. No. 4,542,402, "Digital Color Matrix for a Digital Television Receiver,", wherein the values of binary coded coefficients that convert the representation of the color picture information into binary coded color difference signals are stored in a memory accessed by a microprocessor. In response to adjustment of controls such as contrast and tint, the microprocessor modifies the coefficients. The modified coefficients are placed in a digital store such as a latch arrangement, from which they are provided to a pair of multipliers. The multipliers perform a matrix multiplication to develop color difference signals from I and Q color mixture signals obtained from an analog composite video signal. Each I or Q sample applied to the X operand input port of a multiplier is multiplied three times within one cycle of the I or Q-clock to obtain the three I color mixture components and the three Q color mixture components of the R-Y, G-Y, and B-Y color difference signals.